﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Model
{
    public class DataModelManager
    {
        DCDigitaleWachtkamerDataContext db = new DCDigitaleWachtkamerDataContext();
        #region Selects

        public string getPaswoord(string gebruikersnaam)
        {
            var result = from a in db.Logins where a.Gebruikersnaam == gebruikersnaam select a.Paswoord;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getPatientGebruikersnaam(int PatientID)
        {
            var result = from a in db.Logins where a.PersoonID == PatientID && a.Type == "Patient" select a.Gebruikersnaam;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getPatientGebruikersnaam()
        {
            var result = from a in db.Logins where a.PersoonID == int.Parse(System.Web.HttpContext.Current.Session["dokterspraktijk_patientID"].ToString()) && a.Type == "Patient" select a.Gebruikersnaam;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getArtsGebruikersnaam(int ArtsID)
        {
            var result = from a in db.Logins where a.PersoonID == ArtsID && a.Type == "Arts" select a.Gebruikersnaam;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getArtsGebruikersnaam()
        {
            var result = from a in db.Logins where a.PersoonID == int.Parse(System.Web.HttpContext.Current.Session["dokterspraktijk_artsID"].ToString()) && a.Type == "Arts" select a.Gebruikersnaam;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public int getLoginID(string gebruikersnaam)
        {
            var result = from a in db.Logins where a.Gebruikersnaam == gebruikersnaam select a.LoginID;
            if (result.Count() == 1)
            {
                return int.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public int getPersoonID(int loginID)
        {
            var result = from a in db.Logins where a.LoginID == loginID select a.PersoonID;
            if (result.Count() == 1)
            {
                return int.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getAccountType(string gebruikersnaam)
        {
            var result = from a in db.Logins where a.Gebruikersnaam == gebruikersnaam select a.Type;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public Boolean getGoedgekeurd(int praktijkID , int loginID)
        {
            var result = from a in db.PraktijkLogins where a.PraktijkID == praktijkID && a.LoginID == loginID  select a.Goedgekeurd;
            if (result.Count() == 1)
            {
                return bool.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public Boolean getAfgekeurd(int praktijkID, int loginID)
        {
            var result = from a in db.PraktijkLogins where a.PraktijkID == praktijkID && a.LoginID == loginID select a.Afgekeurd;
            if (result.Count() == 1)
            {
                return bool.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public Boolean getBlacklisted(int praktijkID, int loginID)
        {
            var result = from a in db.PraktijkLogins where a.PraktijkID == praktijkID && a.LoginID == loginID select a.Blacklisted;
            if (result.Count() == 1)
            {
                return bool.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getCommentaar(int praktijkID, int loginID)
        {
            var result = from a in db.PraktijkLogins where a.PraktijkID == praktijkID && a.LoginID == loginID select a.Commentaar;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getPatientVoornaam(int patientID)
        {
            var result = from a in db.Patientens where a.PatientID == patientID select a.Voornaam;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getPatientAchternaam(int patientID)
        {
            var result = from a in db.Patientens where a.PatientID == patientID select a.Achternaam;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getPatientEmail()
        {
            var result = from a in db.Patientens where a.PatientID == int.Parse(System.Web.HttpContext.Current.Session["dokterspraktijk_patientID"].ToString()) select a.Email;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getArtsEmail()
        {
            var result = from a in db.Artsens where a.ArtsID == int.Parse(System.Web.HttpContext.Current.Session["dokterspraktijk_artsID"].ToString()) select a.Email;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public string getPraktijkEmail(int praktijkID = 0)
        {
            if (praktijkID > 0)
            {
                var result = from a in db.Praktijkens where a.PraktijkID == praktijkID select a.Email;
                if (result.Count() == 1)
                {
                    return result.ToList()[0].ToString();
                }
                else
                {
                    throw new Exception("Result returned NULL");
                }
            }
            else
            {
                var result = from a in db.Praktijkens where a.PraktijkID == int.Parse(System.Web.HttpContext.Current.Request.QueryString["dokterspraktijk_praktijkID"]) select a.Email;
                if (result.Count() == 1)
                {
                    return result.ToList()[0].ToString();
                }
                else
                {
                    throw new Exception("Result returned NULL");
                }
            }
        }

        public int getPatientIDOpNaam(string voornaam, string achternaam)
        {
            var result = from a in db.Patientens where a.Achternaam == achternaam && a.Voornaam == voornaam select a.PatientID;
            if (result.Count() == 1)
            {
                return int.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public List<Patienten> getPatientOpArtsID()
        {
            List<Patienten> mijnpatienten = new List<Patienten>();
            try
            {
                var result = from a in db.Patientens where a.ArtsID == int.Parse(System.Web.HttpContext.Current.Session["dokterspraktijk_artsID"].ToString()) select a;
                mijnpatienten = result.ToList();
            }
            catch
            {
                return mijnpatienten;
            }
            return mijnpatienten;
        }

        public List<Login> getAlleLogins()
        {
            List<Login> mijnLogins = new List<Login>();
            try
            {
            var result = from a in db.Logins select a;
            mijnLogins = result.ToList<Login>();
            }
            catch
            { return mijnLogins;}
            return mijnLogins;
        }

        public int getArtsIDOpNaam(string voornaam, string achternaam)
        {
            var result = from a in db.Artsens where a.Achternaam == achternaam && a.Voornaam == voornaam select a.ArtsID;
            if (result.Count() == 1)
            {
                return int.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }
        
        public int getVoorboekPeriode(int artsID)
        {
            var result = from a in db.Artsens where a.ArtsID == artsID select a.VoorboekPeriode;
            if (result.Count() == 1)
            {
                return int.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public int getDuurAfspraak(int artsID)
        {
            var result = from a in db.Artsens where a.ArtsID == artsID select a.DuurAfspraak;
            if (result.Count() == 1)
            {
                return int.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }



        public Boolean getLoginVereist(int artsID)
        {
            var result = from a in db.Artsens where a.ArtsID == artsID select a.LoginVereist;
            if (result.Count() == 1)
            {
                return Boolean.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public List<Artsen> getArtsInfo(int artsID)
        {
            List<Artsen> mijnartsen = new List<Artsen>();
            var result = from a in db.Artsens where a.ArtsID == artsID select a;
            mijnartsen = result.ToList();
            return mijnartsen;
        }

        public List<Patienten> getPatientInfo(int patientID)
        {
            List<Patienten> mijnpatienten = new List<Patienten>();
            var result = from a in db.Patientens where a.PatientID == patientID select a;
            mijnpatienten = result.ToList();
            return mijnpatienten;
        }

        public List<BeschikbaarheidArtsen> getBeschikbaarheid(int artsID)
        {
            List<BeschikbaarheidArtsen> mijnbeschikbaarheid = new List<BeschikbaarheidArtsen>();
            var result = from a in db.BeschikbaarheidArtsens where a.ArtsID == artsID select a;
            mijnbeschikbaarheid = result.ToList();
            return mijnbeschikbaarheid;
        }

        public List<DateTime> getAfspraken(int artsID)
        {
            List<DateTime> mijnafspraken = new List<DateTime>();
            var result = from a in db.Afsprakens where a.ArtsID == artsID select a.DatumUur;
            mijnafspraken = result.ToList();
            return mijnafspraken;
        }

        public List<Afspraken> getLijstAfspraken()
        {
            List<Afspraken> mijnafspraken = new List<Afspraken>();
            try
            {
                var result = from a in db.Afsprakens where a.ArtsID == int.Parse(System.Web.HttpContext.Current.Session["dokterspraktijk_artsID"].ToString()) select a;
                mijnafspraken = result.ToList();
            }
            catch
            {
                return mijnafspraken;
            }
            return mijnafspraken;
        }

        public List<Afspraken> getAfspraak(int afspraakID)
        {
            List<Afspraken> mijnafspraak = new List<Afspraken>();
            var result = from a in db.Afsprakens where a.AfspraakID == afspraakID select a;
            mijnafspraak = result.ToList();
            return mijnafspraak;
        }

        public List<ArtsenInPraktijken> getArtsenInPraktijk(int praktijkID)
        {
            List<ArtsenInPraktijken> mijnartsen = new List<ArtsenInPraktijken>();
            var result = from a in db.ArtsenInPraktijkens where a.PraktijkID == praktijkID select a;
            mijnartsen = result.ToList();
            return mijnartsen;
        }

        public string getPraktijkIDopURL(string URL)
        {
            var result = from a in db.Praktijkens where a.Url == URL select a.PraktijkID;
            if (result.Count() == 1)
            {
                return result.ToList()[0].ToString();
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

        public List<Praktijken> getAllePraktijken()
        {
            List<Praktijken> mijnpraktijken = new List<Praktijken>();
            var result = from a in db.Praktijkens select a;
            mijnpraktijken = result.ToList();
            return mijnpraktijken;
        }

        public List<Artsen> getAlleArtsen()
        {
            List<Artsen> mijnartsen = new List<Artsen>();
            var result = from a in db.Artsens select a ;
            mijnartsen = result.ToList();
            return mijnartsen;
        }

        public List<string> getAlleArtsenNaam()
        {
            List<string> mijnartsen = new List<string>();
            var result = from a in db.Artsens select (a.Achternaam + ' ' + a.Voornaam);
            mijnartsen = result.ToList();
            return mijnartsen;
        }

        public List<Patienten> getAllePatienten()
        {
            List<Patienten> mijnpatienten = new List<Patienten>();
            var result = from a in db.Patientens select a;
            mijnpatienten = result.ToList();
            return mijnpatienten;
        }

        public Praktijken getPraktijk(int praktijkID)
        {
            List<Praktijken> mijnpraktijken = new List<Praktijken>();
            var result = from a in db.Praktijkens where a.PraktijkID == praktijkID select a;
            mijnpraktijken = result.ToList();
            return mijnpraktijken[0];
        }
        public int getPraktijkIDOpArtsID(int artsID)
        {
            var result = from a in db.ArtsenInPraktijkens where a.ArtsID == artsID select a.PraktijkID;
            if (result.Count() == 1)
            {
                return int.Parse(result.ToList()[0].ToString());
            }
            else
            {
                throw new Exception("Result returned NULL");
            }
        }

#endregion
        #region Inserts

        public void insertLogin(Login mijnLogin)
        {
            db.Logins.InsertOnSubmit(mijnLogin);
            db.SubmitChanges();
        }

        public void insertPraktijkLogins(PraktijkLogin mijnPraktijkLogin)
        {
            db.PraktijkLogins.InsertOnSubmit(mijnPraktijkLogin);
            db.SubmitChanges();
        }

        public void insertPatienten(Patienten mijnPatienten)
        {
            db.Patientens.InsertOnSubmit(mijnPatienten);
            db.SubmitChanges();
        }

        public void insertAfspraken(Afspraken mijnAfspraken)
        {
            db.Afsprakens.InsertOnSubmit(mijnAfspraken);
            db.SubmitChanges();
        }

        public void insertArtsen(Artsen mijnArtsen)
        {
            db.Artsens.InsertOnSubmit(mijnArtsen);
            db.SubmitChanges();
        }

        public void InsertBeschikbaarheidArtsen(BeschikbaarheidArtsen mijnBeschikbaarheidArtsen)
        {
            db.BeschikbaarheidArtsens.InsertOnSubmit(mijnBeschikbaarheidArtsen);
            db.SubmitChanges();
        }

        public void insertPraktijken(Praktijken mijnPraktijken)
        {
            db.Praktijkens.InsertOnSubmit(mijnPraktijken);
            db.SubmitChanges();
        }

        public void insertArstenInPraktijken(ArtsenInPraktijken mijnArtsenInPraktijken)
        {
            db.ArtsenInPraktijkens.InsertOnSubmit(mijnArtsenInPraktijken);
            db.SubmitChanges();
        }

        #endregion
        #region Update

        public void updateLoginPassword(string gebruikersnaam, string nieuwpaswoord)
        {
            if (gebruikersnaam != null && nieuwpaswoord != null)
            {
                var record = (from a in db.Logins where a.Gebruikersnaam == gebruikersnaam select a).Single();

                record.Paswoord = nieuwpaswoord;

                db.SubmitChanges();
            }
            else
            { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        public void updatePraktijkLoginGoedgekeurd(int praktID, int gebruikID, bool gekeurd)
        {
            if (praktID != 0 && gebruikID != 0)
            {
                var record = (from a in db.PraktijkLogins where a.PraktijkID == praktID && a.LoginID == gebruikID select a).Single();

                record.Goedgekeurd = gekeurd;

                db.SubmitChanges();
            }
            else
            { throw new Exception("Een of meer van de meegegeven ID's is null"); }
        }

        public void updatePraktijkLoginAfgekeurd(int praktID, int gebruikID, bool afgekeurd)
        {
            if (praktID != 0 && gebruikID != 0)
            {
                var record = (from a in db.PraktijkLogins where a.PraktijkID == praktID && a.LoginID == gebruikID select a).Single();

                record.Afgekeurd = afgekeurd;

                db.SubmitChanges();
            }
            else
            { throw new Exception("Een of meer van de meegegeven ID's is null"); }
        }

        public void updatePraktijkLoginBlacklist(int praktID, int gebruikID, bool blacklist)
        {
            if (praktID != 0 && gebruikID != 0)
            {
                var record = (from a in db.PraktijkLogins where a.PraktijkID == praktID && a.LoginID == gebruikID select a).Single();

                record.Blacklisted = blacklist;

                db.SubmitChanges();
            }
            else
            { throw new Exception("Een of meer van de meegegeven ID's is null"); }
        }
        // voorlopig nog selectie op patientid , dit moet eigenlijk op gebruikersnaam
        public void updatePatientAdres(int patientID, string nieuweStraat, string nieuweGemeente, string nieuwHuisnr, string nieuwPostcode)
        {
            if (patientID != 0 && nieuweStraat != null && nieuweGemeente != null && nieuwHuisnr != null && nieuwPostcode != null)
            {
                var record = (from a in db.Patientens where a.PatientID == patientID select a).Single();

                record.Straat = nieuweStraat;
                record.Gemeente = nieuweGemeente;
                record.Huisnummer = nieuwHuisnr;
                record.Postcode = nieuwPostcode;

                db.SubmitChanges();
            }
            else
            { throw new Exception("Een of meer van de meegegeven parameters is null"); }

        }

        public void updatePatientTelefoon(int patientID, string nieuwTelefoon)
        {
            if (patientID != 0 && nieuwTelefoon != null)
            {
                var record = (from a in db.Patientens where a.PatientID == patientID select a).Single();

                record.Telefoon = nieuwTelefoon;

                db.SubmitChanges();
            }
            else
            { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        public void updatePatientEmail(int patientID, string nieuwEmail)
        {
            if (patientID != 0)
            {
                var record = (from a in db.Patientens where a.PatientID == patientID select a).Single();

                record.Email = nieuwEmail;

                db.SubmitChanges();
            }
            else { throw new Exception("patientID is null"); }
        }

        public void updatePatientArtsID(int patientID, int nieuwArtsID)
        {
            if (patientID != 0)
            {
                var record = (from a in db.Patientens where a.PatientID == patientID select a).Single();

                record.ArtsID = nieuwArtsID;

                db.SubmitChanges();
            }
            else { throw new Exception("patientID is null"); }
        }

        // voorlopig nog selectie op artsid , dit moet eigenlijk op gebruikersnaam
        public void updateArtsAdres(int artsID, string nieuweStraat, string nieuweGemeente, string nieuwHuisnr, string nieuwPostcode)
        {
            if (artsID != 0 && nieuweStraat != null && nieuweGemeente != null && nieuwHuisnr != null && nieuwPostcode != null)
            {
                var record = (from a in db.Artsens where a.ArtsID == artsID select a).Single();

                record.Straat = nieuweStraat;
                record.Gemeente = nieuweGemeente;
                record.Huisnummer = nieuwHuisnr;
                record.Postcode = nieuwPostcode;

                db.SubmitChanges();
            }
            else
            { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        public void updateArtsAlles(int artsID, string nieuweVoornaam, string nieuweAchternaam, string nieuweStraat, string nieuwHuisnr, string nieuweGemeente, string nieuwPostcode, string nieuwTelefoon, string nieuwMobiel, string nieuwEmail, string nieuwGeslacht, int nieuwDuurAfspraak, bool nieuwLoginVereist, int nieuwVoorboekPeriode)
        {
            if (artsID != 0 && nieuweStraat != null && nieuweGemeente != null && nieuwHuisnr != null && nieuwPostcode != null && nieuweVoornaam != null && nieuweAchternaam != null && nieuwEmail != null && nieuwDuurAfspraak != 0 && nieuwGeslacht != null && nieuwLoginVereist != null && nieuwVoorboekPeriode != 0)
            {
                var record = (from a in db.Artsens where a.ArtsID == artsID select a).Single();

                record.Achternaam = nieuweAchternaam;
                record.Voornaam = nieuweVoornaam;
                record.Straat = nieuweStraat;
                record.Huisnummer = nieuwHuisnr;
                record.Gemeente = nieuweGemeente;
                record.Postcode = nieuwPostcode;
                record.Telefoon = nieuwTelefoon;
                record.Mobiel = nieuwMobiel;
                record.Email = nieuwEmail;
                record.Geslacht = nieuwGeslacht;
                record.DuurAfspraak = nieuwDuurAfspraak;
                record.LoginVereist = nieuwLoginVereist;
                record.VoorboekPeriode = nieuwVoorboekPeriode;

                db.SubmitChanges();
            }
            else
            { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }
        
        // voorlopig nog selectie op artsid , dit moet eigenlijk op gebruikersnaam
        public void updateArtsTelefoon(int artsID, string nieuweTelefoon)
        {
            if (artsID != 0)
            {
                var record = (from a in db.Artsens where a.ArtsID == artsID select a).Single();

                record.Telefoon = nieuweTelefoon;

                db.SubmitChanges();
            }
            else { throw new Exception("artsID is null"); }
        }

        // voorlopig nog selectie op artsid , dit moet eigenlijk op gebruikersnaam
        public void updateArtsMobiel(int artsID, string nieuweMobiel)
        {
            if (artsID != 0)
            {
                var record = (from a in db.Artsens where a.ArtsID == artsID select a).Single();

                record.Mobiel = nieuweMobiel;

                db.SubmitChanges();
            }
            else { throw new Exception("artsID is null"); }
        }

        // voorlopig nog selectie op artsid , dit moet eigenlijk op gebruikersnaam
        public void updateArtsEmail(int artsID, string nieuweEmail)
        {
            if (artsID != 0 && nieuweEmail != null)
            {
                var record = (from a in db.Artsens where a.ArtsID == artsID select a).Single();

                record.Email = nieuweEmail;

                db.SubmitChanges();
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        // voorlopig nog selectie op artsid , dit moet eigenlijk op gebruikersnaam
        public void updateArtsLoginVereist(int artsID, bool nieuweVereiste)
        {
            if (artsID != 0)
            {
                var record = (from a in db.Artsens where a.ArtsID == artsID select a).Single();

                record.LoginVereist = nieuweVereiste;

                db.SubmitChanges();
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        // voorlopig nog selectie op artsid , dit moet eigenlijk op gebruikersnaam
        public void updateDuurAfspraak(int artsID, int nieuweDuur)
        {
            if (artsID != 0 && nieuweDuur != 0)
            {
                var record = (from a in db.Artsens where a.ArtsID == artsID select a).Single();

                record.DuurAfspraak = nieuweDuur;

                db.SubmitChanges();
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        // voorlopig nog selectie op artsid , dit moet eigenlijk op gebruikersnaam
        public void updateVoorboekPeriode(int artsID, int nieuwePeriode)
        {
            if (artsID != 0 && nieuwePeriode != 0)
            {
                var record = (from a in db.Artsens where a.ArtsID == artsID select a).Single();

                record.VoorboekPeriode = nieuwePeriode;

                db.SubmitChanges();
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        public void updateUrlPraktijken(int PraktijkID, string nieuweUrl)
        {
            if (PraktijkID != 0)
            {
                var result = (from a in db.Praktijkens where a.PraktijkID == PraktijkID select a).Single();
                result.Url = nieuweUrl;

                db.SubmitChanges();
            }
            else { throw new Exception("PraktijkID is null"); }
        }

        public void updateEmailPraktijken(int PraktijkID, string nieuweEmail)
        {
            if (PraktijkID != 0)
            {
                var result = (from a in db.Praktijkens where a.PraktijkID == PraktijkID select a).Single();
                result.Email = nieuweEmail;

                db.SubmitChanges();
            }
            else { throw new Exception("PraktijkID is null"); }
        }

        public void updateTelefoonPraktijken(int PraktijkID, string nieuweTelefoon)
        {
            if (PraktijkID != 0)
            {
                var result = (from a in db.Praktijkens where a.PraktijkID == PraktijkID select a).Single();
                result.Telefoon = nieuweTelefoon;

                db.SubmitChanges();
            }
            else { throw new Exception("PraktijkID is null"); }
        }

        public void updateStraatPraktijken(int PraktijkID, string nieuweStraat)
        {
            if (PraktijkID != 0 && nieuweStraat != null)
            {
                var result = (from a in db.Praktijkens where a.PraktijkID == PraktijkID select a).Single();
                result.Straat = nieuweStraat;

                db.SubmitChanges();
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        public void updategegevensPraktijken(int PraktijkID, string nieuwenaam, string nieuwestraat, string nieuwehuisnr, string nieuwegemeente, string nieuwepostcode, string nieuwetelefoon, string nieuweEmail, string nieuweUrl, bool nieuweIsactief)
        {
            if (PraktijkID != 0 && nieuwenaam != null && nieuwestraat != null && nieuwehuisnr != null && nieuwegemeente != null && nieuwepostcode != null && nieuweIsactief != null)
            {
                var result = (from a in db.Praktijkens where a.PraktijkID == PraktijkID select a).Single();
                result.Naam = nieuwenaam;
                result.Straat = nieuwestraat;
                result.Huisnummer = nieuwehuisnr;
                result.Gemeente = nieuwegemeente;
                result.Postcode = nieuwepostcode;
                result.Telefoon = nieuwetelefoon;
                result.Email = nieuweEmail;
                result.Url = nieuweUrl;
                result.Actief = nieuweIsactief;
                db.SubmitChanges();
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        public void updatePraktijkActief(int PraktijkID, bool actief)
        {
            if (PraktijkID != 0)
            {
                var result = (from a in db.Praktijkens where a.PraktijkID == PraktijkID select a).Single();
                result.Actief = actief;

                db.SubmitChanges();
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

        #endregion

        public bool checkUsernameGebruikt(string username)
        {
            var result = from a in db.Logins where a.Gebruikersnaam == username select a;
            if (result.Count() == 1)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        public bool checkPatientIDgebruikersnaamCorrect(int loginID, string gebruikersnaam)
        {
            if (loginID != 0 && gebruikersnaam != null)
            {
                try
                {
                    var result = (from a in db.Logins where a.LoginID == loginID select a).Single();
                    if (gebruikersnaam == result.Gebruikersnaam)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                catch
                {
                    return false;
                }
                
                
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }

       

        public bool checkGebruikersnaamBeschikbaar(string gebruikersnaam)
        {
            if (gebruikersnaam != null)
            {
                try
                {
                    var result = (from a in db.Logins where a.Gebruikersnaam == gebruikersnaam select a).Single();
                    if (gebruikersnaam == result.Gebruikersnaam)
                    {
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
                catch
                {
                    return true;
                }
            }
            else { throw new Exception("Een of meer van de meegegeven parameters is null"); }
        }
    }
}
